package com.ruoyi.platform.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 订单行驶轨迹对象 t_order_trajectory
 * 
 * @author ruoyi
 * @date 2025-08-20
 */
public class TOrderTrajectory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 行驶轨迹ID，自增主键 */
    private Long trajectoryId;

    /** 订单ID，关联t_order表 */
    @Excel(name = "订单ID，关联t_order表")
    private Long orderId;

    /** 司机出发地点 */
    @Excel(name = "司机出发地点")
    private String driverDepartureLocation;

    /** 司机出发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "司机出发时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date driverDepartureTime;

    /** 乘客上车地点 */
    @Excel(name = "乘客上车地点")
    private String passengerPickupLocation;

    /** 乘客上车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "乘客上车时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date passengerPickupTime;

    /** 乘客下车地点 */
    @Excel(name = "乘客下车地点")
    private String passengerDropoffLocation;

    /** 乘客下车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "乘客下车时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date passengerDropoffTime;

    /** 订单总时长（分钟） */
    @Excel(name = "订单总时长", readConverterExp = "分=钟")
    private Long totalDuration;

    /** 订单总里程（公里） */
    @Excel(name = "订单总里程", readConverterExp = "公=里")
    private BigDecimal totalMileage;

    /** 平均速度（公里/时） */
    @Excel(name = "平均速度", readConverterExp = "公=里/时")
    private BigDecimal averageSpeed;

    public void setTrajectoryId(Long trajectoryId) 
    {
        this.trajectoryId = trajectoryId;
    }

    public Long getTrajectoryId() 
    {
        return trajectoryId;
    }

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setDriverDepartureLocation(String driverDepartureLocation) 
    {
        this.driverDepartureLocation = driverDepartureLocation;
    }

    public String getDriverDepartureLocation() 
    {
        return driverDepartureLocation;
    }

    public void setDriverDepartureTime(Date driverDepartureTime) 
    {
        this.driverDepartureTime = driverDepartureTime;
    }

    public Date getDriverDepartureTime() 
    {
        return driverDepartureTime;
    }

    public void setPassengerPickupLocation(String passengerPickupLocation) 
    {
        this.passengerPickupLocation = passengerPickupLocation;
    }

    public String getPassengerPickupLocation() 
    {
        return passengerPickupLocation;
    }

    public void setPassengerPickupTime(Date passengerPickupTime) 
    {
        this.passengerPickupTime = passengerPickupTime;
    }

    public Date getPassengerPickupTime() 
    {
        return passengerPickupTime;
    }

    public void setPassengerDropoffLocation(String passengerDropoffLocation) 
    {
        this.passengerDropoffLocation = passengerDropoffLocation;
    }

    public String getPassengerDropoffLocation() 
    {
        return passengerDropoffLocation;
    }

    public void setPassengerDropoffTime(Date passengerDropoffTime) 
    {
        this.passengerDropoffTime = passengerDropoffTime;
    }

    public Date getPassengerDropoffTime() 
    {
        return passengerDropoffTime;
    }

    public void setTotalDuration(Long totalDuration) 
    {
        this.totalDuration = totalDuration;
    }

    public Long getTotalDuration() 
    {
        return totalDuration;
    }

    public void setTotalMileage(BigDecimal totalMileage) 
    {
        this.totalMileage = totalMileage;
    }

    public BigDecimal getTotalMileage() 
    {
        return totalMileage;
    }

    public void setAverageSpeed(BigDecimal averageSpeed) 
    {
        this.averageSpeed = averageSpeed;
    }

    public BigDecimal getAverageSpeed() 
    {
        return averageSpeed;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("trajectoryId", getTrajectoryId())
            .append("orderId", getOrderId())
            .append("driverDepartureLocation", getDriverDepartureLocation())
            .append("driverDepartureTime", getDriverDepartureTime())
            .append("passengerPickupLocation", getPassengerPickupLocation())
            .append("passengerPickupTime", getPassengerPickupTime())
            .append("passengerDropoffLocation", getPassengerDropoffLocation())
            .append("passengerDropoffTime", getPassengerDropoffTime())
            .append("totalDuration", getTotalDuration())
            .append("totalMileage", getTotalMileage())
            .append("averageSpeed", getAverageSpeed())
            .toString();
    }
}
